#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>

// 多线程 结构体指针传参

pthread_mutex_t lock; // 定义一个锁

int s = 0;		//记录结果

void* myfunc(void* args)
{
	pthread_mutex_lock(&lock);		// 加锁
	int i;
	for(i = 0; i < 1000000; i++){
		s++;
	}
	pthread_mutex_unlock(&lock);	// 解锁
	return NULL;
}

int main(void)
{

	
	pthread_t th1;      // 定义一个线程结构体
	pthread_t th2; 
	
	pthread_mutex_init(&lock, NULL);	// 初始化锁
	
	// 第4个参数即传入myfunc的void* args
    pthread_create(&th1, NULL, myfunc, NULL);     // 创建线程，注意第3个参数的格式很重要
	pthread_create(&th2, NULL, myfunc, NULL);     
	
	pthread_join(th1, NULL); // 等待子线程结束
	pthread_join(th2, NULL); 
	

	printf("result: %d\n", s);
	
	return 0;
}

